<?php

/*
 * Nome: banco
 * Data: 12/07/2013
 * Autor: Felipe França
 * Objetivo: Abstrair a conexão com o banco de dados e ter as operações básicas de persistência
 */

abstract class dataBase {

    public $servidor = "localhost";
    public $usuario = "root";
    public $senha = "";
    public $nomeBanco = "tasks";
    public $dataset = NULL;
    public $conexao = NULL;
    public $linhasAfetadas = -1;
    
    /*
    $mysql_host = "mysql2.000webhost.com";
    $mysql_database = "a2826885_4task";
    $mysql_user = "a2826885_root";
    $mysql_password = "123oliveira4";
    */
    
    public function __construct() {
        $this->conecta();
    }

    public function __destruct() {
        if ($this . type == "mysql") {
            mysql_close();
        }
    }

    public function conecta() {
        $this->conexao = mysql_connect($this->servidor, $this->usuario, $this->senha, TRUE) or die("Erro ao conectar " . mysql_error());
        mysql_select_db($this -> nomeBanco) or die(mysql_error($this->conexao));
        mysql_query("SET NAMES 'utf8'");
        mysql_query("SET character_set_connection=utf8");
        mysql_query("SET character_set_client=utf8");
        mysql_query("SET character_set_results=utf8");
    }
    
    public function inserir($tabela,$campos,$valores){
        
    }
    
    public function alterar($tabela,$campos,$valores){
        
    }
    
    public function deletar($tabela,$campos,$valores){
        
    }
    
    public function selecionaTudo(){
         
    }
    
    public function seleciona(){
        
    }
    
    public function query($query,$mode="array",$debug=false){
        
        $result = mysql_query($query);
        
        if($debug==true){
            var_dump($query);
        }
        
        if($result){
            switch ($mode) {
                case 'row':
                    return mysql_fetch_row($result);
                    unset($result);
                    break;
                case 'object':
                    return mysql_fetch_object($result);
                    unset($result);
                    break;
                case 'assoc':
                    return mysql_fetch_assoc($result);
                    unset($result);
                    break;
                case 'num_rows':
                    return mysql_num_rows($result);
                    unset($result);
                    break;        
                case 'array':
                    return mysql_fetch_array($result);
                    unset($result);
                    break;
                default:
                    return $result;
                    unset($result);
                    break;
            }
        }
        else{
            return ("Erro ao executar query, Erro: ".mysql_error($this->conexao)." N: ".mysql_errno($this->conexao));
        }  
    }
}
?>